"""
使用文件和目录操作，定义一个统计指定目录大小的函数
要求：
    需要导入OS模块
    采用递归统计:及就是自我调用
    需要判断指定目录是否为文件或者文件夹语法：if os.path.isfile(文件/文件夹)
    最终输出为字节
"""
#导入OS模块
import os
#自定义统计目录大小文件
def census_size(filelist):
    count = 0     #文件大小，初始化为0
    #判断是否为文件来判断其大小是否计入
    if os.path.isfile(filelist):
        count += os.path.getsize(filelist)
    #判断是否为文件夹，如果是需要采用（递归方法）自我调用进行统计文件大小
    if os.path.isdir(filelist):
        dir_list = os.listdir(filelist)
        for i in dir_list:
            file = os.path.join(filelist,i)
            if os.path.isfile(file):
                count += os.path.getsize(file)
            if os.path.isdir(file):
                #自我调用及就是递归调用
                count += census_size(file)
    #返回值
    return count

print("")
print("========"*10)
print("\n   友情提示：如果不想继续查询可以直接输入exit退出，也可以继续输入目录进行查询\n")
print("========"*10)
#采用while循环进行统计
while True:
    #通过键盘输入自己想要统计的目录，并提示格式
    KeyBoard = input("\n请输入想要统计文件大小的路径\n请按照以下格式进行输入：E:\\Python\\python1\\ninetonine.py\n\n")
    print("")
    #判断输入的文件是否有效、错误
    if KeyBoard == "exit":
        break
    #函数调用
    else:
        print("\n您目前所要查询的文件大小为：{}字节\n".format(census_size(KeyBoard)))
